package com.kaifamiao.strings;

/**
 * 重点是 使用 + 运算符 连接字符串 (常考)
 * 1、String concat(String)
 * 2、String toUpperCase()
 * 3、String toLowerCase()
 */
public class ConcatString {

    public static void main(String[] args) {

        String s = "kaifamiao";
        // 在源代码中使用 + 运算符直接连接的字符串字面量，
        // 在编译阶段会自动优化成一个已经连接好的字符串
        String t = "kai" + "fa" + "miao";
        String m = "miao";
        // Java 17:
        //      makeConcatWithConstants
        // Java 8:
        //      StringBuilder sb = new StringBuilder();
        //      sb.append("kaifa");
        //      sb.append( m );
        //      String x = sb.toString();
        String x = "kaifa" + m ;
        //  在 + 运算符前后存在 String变量 时就会产生新的 String实例

        System.out.println( s == t ); // true
        System.out.println( s == x ); // false

        System.out.println( "- - - - - - - - - - - - - -" );

        String first = "kai";
        String second = "fa";
        // 在当前字符串(first)之后连接另一个字符串(second)后返回新的字符串
        String third = first.concat( second );
        // 在当前字符串(third)之后连接另一个字符串("miao")后返回新的字符串
        third = third.concat( "miao" );
        System.out.println( third );
        // 将小写英文字母转换为大写英文字母
        String upper = third.toUpperCase();
        System.out.println( upper );
        // 将大写英文字母转换为小写英文字母
        String lower = upper.toLowerCase();
        System.out.println( lower );

    }

}
